package com.zrrd.network.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * @author WanJl
 * @version 1.0
 * @title SendDemo02
 * @description 组播发送
 * @create 2023/10/22 10:40
 */
public class SendDemo02 {
    /**
     *
     * @param host 接收端的ip地址
     * @param port 接收端的端口号
     * @param content 接收端收到的内容
     */
    public static void send(String host,int port,String content) throws IOException {
        //1、创建发送端的Socket对象(DatagramSocket)
        //使用随机端口发送
        DatagramSocket ds=new DatagramSocket();
        //2、创建数据，并把数据打包(DatagramPacket)
        byte[] bytes = content.getBytes();
        //接收端的信息
        //bytes 接收到的数据包
        //bytes.length 接收的数据包的长度
        //InetAddress.getByName(host) 接收端的主机ip，由于是组播，需要设置组播ip
        //port 接收端的端口号
        DatagramPacket dp=new DatagramPacket(bytes, bytes.length,
                InetAddress.getByName(host),port);
        //3、调用DatagramSocket对象的方法发送数据(在单播中,这里是发给指定IP的电脑但是在组播当中,这里是发给组播地址)
        ds.send(dp);
        //4、释放资源
        ds.close();
    }

    public static void main(String[] args) throws IOException {
        send("224.0.0.0",10010,"组播信息来啦");
    }
}
